The present invention relates to an information processing apparatus and method, and to a distribution medium. More particularly, the present invention relates to an information processing apparatus and method which realizes communication at the optimum communication speed of a network, and to a distribution medium.
When data is transmitted among arbitrary information processing apparatuses (hereinafter referred to as xe2x80x9capparatusesxe2x80x9d) connected to a bus, which are capable of transmitting data at a plurality of transmission rates, it is necessary to select a data transmission rate at which a transmitting apparatus can transmit, a receiving apparatus can receive, and further, at which, when there is another apparatus (relay apparatus) among the apparatuses, at which the relay apparatus can also operate. FIG. 21 shows an example of a plurality of apparatuses connected to an IEEE1394 serial bus. An IRD (Integrated Receiver/Decoder) 1 to which an antenna 7, a monitor 2, an MD (Mini Disk) deck 3, and digital VTRs (Video Tape Recorders) 4 to 6 are connected to each other by IEEE1394 serial buses 8-1 to 8-5. These apparatuses, which fulfill the specifications for IEEE1394 and IEC61883 which defines AV (Audio Visual) data transmission on the IEEE1394, constitute nodes which are units to which access can be made in the IEEE1394, and have a data transmission rate at which data can be transmitted from one to the other or be received from one to the other.
The IEEE1394 serial bus is defined as the specifications of a digital interface for connecting a plurality of apparatuses. As specifications for defining the transmission rate among apparatuses connected to the IEEE1394 serial bus, three types are defined: S100 having a data transmission rate of 98.308 Mbps, S200 having a data transmission rate of 196.608 Mbps, and S400 having a data transmission rate of 392.216 Mbps. An apparatus having a high-speed data transmission rate can transmit data at a data transmission rate slower than this. For example, an apparatus which supports S400 also supports the data transmission of S200 and S100. The data transmission of S100 is possible by all apparatuses which fulfill the specifications for IEEE1394. When these apparatuses, whose upper limits of the data transmission rate are different, are connected to the IEEE1394 serial bus, the apparatus which performs data transmission must transmit data at a transfer rate at which an apparatus which performs relay can perform a relay process.
FIG. 22 shows an example of a connection of apparatuses, in which physical IDs (Identification Data) of the apparatuses shown in FIG. 21 and the specifications of the data transmission rates are indicated within the nodes. The apparatus which is connected to the IEEE1394 serial bus forms a node on the IEEE1394. A node 11 fulfilling the specifications for the data transmission rate of S400 of FIG. 22 corresponds to an IRD 1 of FIG. 21. In a similar manner, a node 12 fulfilling the specifications for the data transmission rate of S200 corresponds to the monitor 2, a node 13 fulfilling the specifications for the data transmission rate of S200 corresponds to the MD deck 3, a node 14 fulfilling the specifications for the data transmission rate of S100 corresponds to the digital VTR 4, a node 15 fulfilling the specifications for the data transmission rate of S100 corresponds to the digital VTR 5, and a node 16 fulfilling the specifications for the data transmission rate of S200 corresponds to the digital VTR 6. For example, the IRD 1 fulfills the specifications for S400, the monitor 2 fulfills the specifications for S200, and there is no apparatus which relays data in between, thereby making possible communication at a data transmission rate of 196.608 Mbps. Of course, the IRD 1 and the monitor 2 are capable of performing data transmission of S100 at 98.308 Mbps.
In contrast, both apparatuses of the MD deck 3 and the digital VTR 6 fulfill the specification for S200; however, the digital VTR 4 having the specifications for S100 is present on the data transmission path. Therefore, the upper limit of the data transmission rate of the MD deck 3 and the digital VTR 6 is 98.308 Mbps which is the specification for S100.
Next, a description is given of the communication protocol of data transmission defined in IEEE1394. FIG. 23 illustrates the structure of the functions of the IEEE1394 protocol (protocol: communication convention). The IEEE1394 protocol has a hierarchical structure of three layers: a transaction layer (Transaction Layer) 22, a link layer (Link Layer) 23, and a physical layer (Physical Layer) 24. The hierarchies communicate with each other, and the respective hierarchies communicate with a serial bus management (Serial Bus Management) 21. Furthermore, the transaction layer 22 and the link layer 23 communicate with another function block. There are four types of transmission and reception messages used for this communication: request (Request), indication (Indication), response (Response), and confirmation (Confirmation). The arrows in FIG. 23 indicate this communication. A communication followed by xe2x80x9c.reqxe2x80x9d at the end of the name of the arrow represents a request. In a similar manner, xe2x80x9c.indxe2x80x9d represents an indication, xe2x80x9c.respxe2x80x9d represents a response, and xe2x80x9c.confxe2x80x9d represents a confirmation. For example, TR_CONT.req is a communication for request sent from the serial bus management to the transaction layer 22.
The transaction layer 22 provides an asynchronous data transmission service provided to perform data transmission with another predetermined apparatus in accordance with a request from another function block, and realizes a request response protocol (Request Response Protocol) required in ISO/IEC13213. The transaction layer 22 performs an asynchronous transmission process, but does not perform an isochronous transmission process for transmitting data, such as images or sound. The data transmitted in the asynchronous transmission is transmitted, among apparatuses, by three types of transactions: a read transaction, a write transaction, and a lock transaction which are units of processing for making a request to the protocol of the transaction layer 22. Here, the lock transaction is used to eliminate detrimental effects by split transaction (Split Transaction) composed of two or more subactions of the link layer 23 in the asynchronous communication.
The link layer 23 performs a data transmission service using acknowledge, address processing, data error confirmation, framing of data, etc. A request for an asynchronous transmission service from another function block is made to the link layer 23. One packet transmission performed by the link layer 23 is called a subaction, and as subactions, there are two types: an asynchronous subaction, and an isochronous subaction. In the physical ID (Identification Data) which specifies a node and in an asynchronous subaction which specifies an address within the node, the node which has received the data returns an acknowledgement. In an isochronous broadcast subaction which sends data to all nodes inside the IEEE1394 serial bus, the node which has received the data does not return an acknowledgement. The data of the isochronous subaction is transmitted at a fixed cycle with a channel number being specified, and an acknowledgement is not returned.
The physical layer 24 converts a logic symbol used in the link layer 23 into an electrical signal. Furthermore, the physical layer 24 performs control so that only one node initiates data transmission by arbitration, performs re-configuration of the IEEE1394 serial bus as a result of bus reset, and performs automatic assignment of the physical ID.
The serial bus management 21 realizes the basic bus control function and provides CSR (ControlandStatus Register Architecture) of ISO/IEC13213. The serial bus management 21 has the functions of a node controller, an isochronous resource manager, and a bus manager. The node controller controls the status of a node, the physical ID, and so on, and controls the transaction layer 22, the link layer 23, and the physical layer 24. In order to perform isochronous communication, at least one apparatus having the function of an isochronous resource manager is required among the apparatuses connected to the IEEE1394 serial bus. The bus manager aims at pursuing the optimum utilization of the IEEE1394 serial bus, which is the highest function among the functions. The presence of the isochronous resource manager and the bus manager is arbitrary.
FIG. 24 shows an example of the structure of an asynchronous subaction which specifies the physical ID and the address within the node, which is a method of communication with an IEEE1394 serial bus. This example is such that in subaction1 (subaction1: request in FIG. 24), a first predetermined node transfers a packet for making a read request or a write request to a second predetermined node, and in subaction2 (subaction2: response in FIG. 24), a second predetermined node responds to that request with respect to the first predetermined node. The asynchronous subaction is composed of arbitration sequences (Arbitration Sequences) 31-1 and 31-2, data packet transmissions 32-1 and 32-2, and acknowledgements 33-1 and 33-2. The node which wants to transmit an asynchronous packet requests a physical layer to be described later to perform control of the IEEE1394 serial bus in the period of the arbitration sequences 31-1 and 31-2. By arbitration, the node which is determined as a transmission node transmits an asynchronous packet in the period of the data packet transmissions 32-1 and 32-2. The node which has received the asynchronous packet which has specified the receiving node returns an acknowledgement to the node which has transmitted the packet in the period of the acknowledgements 33-1 and 33-2 for the purpose of confirming reception.
As shown in FIG. 24, the section between the asynchronous subaction is divided by periods called subaction gaps 34-1 to 34-3. Further, the section between the data packet transmissions 32-1 and 32-2 and between the acknowledgements 33-1 and 33-2 are divided by periods called acknowledge gaps (ack gaps) 35-1 and 35-2.
FIG. 25 shows the structure of an isochronous subaction which is another subaction. The isochronous subaction is composed of arbitration sequences 41-1 to 41-3 and data packet transmissions 42-1 to 42-3. A node which wants to transmit an isochronous packet requests a physical layer to be described later to control the IEEE1394 serial bus in the period of the arbitration sequences 41-1 to 41-3. The operation of each node in the isochronous subaction is the same as the operation of each node in the asynchronous subaction.
In the period of the arbitration sequences 41-1 to 41-3, the node which has been determined as a transmission node transmits an isochronous packet in the period of the data packet transmissions 42-1 to 42-3. The isochronous subaction is divided by periods called isochronous gaps (isoch gaps) 43-1 to 43-4 shorter than subaction gaps 34-1 to 34-3 which divide the asynchronous subaction. Due to the difference in the length between the isochronous gaps 43-1 to 43-4 and the subaction gaps 34-1 to 34-3, the arbitration sequences 41-1 to 41-3 for isochronous communication are started before arbitration sequences 31-1 and 31-2 for asynchronous communication, and a transmission node is determined. This operation takes precedence over the asynchronous communication.
FIG. 26 shows the cycle structure of data transmission of an apparatus connected by IEEE1394. In IEEE1394, data is divided into packets and transmitted on a time-division basis with a cycle of a length of 125 xcexcs as a reference. This cycle is created by a cycle start signal supplied from a node having cycle master functions (one of the apparatuses shown in FIG. 22). For the asynchronous packet, a band (called a xe2x80x9cbandxe2x80x9d, although this is a time unit) required to transmit from the start of all cycles is secured. Therefore, in the isochronous transmission, transmission of data within a fixed time is ensured. However, when a transmission error occurs, there is no scheme for protection, and data is lost. In the time, which is not used for isochronous transmission, of each cycle, the node which has secured the IEEE1394 serial bus as a result of arbitration transmits an asynchronous packet. In the asynchronous transmission, use of acknowledgement and rewrite ensures reliable transmission, but timing of transmission is not fixed.
In order for a predetermined node to perform isochronous transmission, that node must support isochronous functions. Further, at least one of the nodes which support isochronous functions must have cycle master functions. In addition, at least one of the nodes connected to the IEEE1394 serial buses 8-1 to 8-5 must have functions of an isochronous resource manager.
FIG. 27 shows the ranges of periods of a gap required for transmission on the IEEE1394 serial bus. An arbitration reset gap is a period in which an arbitration enable bit possessed by each node on the IEEE1394 serial bus is set, and is a smallest period in which after all nodes which perform asynchronous transmission have completed transfer of packets, arbitration for asynchronous transmission can be initiated again.
In order to increase the operation speed of the IEEE1394 serial bus, it is necessary to set the subaction gap and the arbitration reset gap to the smallest period in a range where the normal operation of arbitration is ensured. Specifically, this can be realized by setting gap_cnt, which is a node variable to be described later, in accordance with the topology of the IEEE1394 serial buses.
FIG. 28 illustrates the relationship among the delay of packet transmission on the IEEE1394 serial bus, an arbitration reset gap, and a subaction gap. In the packet transmission, a delay occurs in the packets due to the propagation of an electrical signal through the cable and the repetition of an electrical signal of the physical layer to be described later. That is, when a packet is transmitted from a node A to a node C, the packet sent from the node A reaches a node B at a time later than the time at which it has been sent from the node A due to a delay which occurs due to the propagation of the electrical signal through the cable, and reaches the node C at a time even later than at the node B. The greater the number of hops of the cables involved in packet transmission and the number of nodes through which relay is conducted, the greater the delay of this packet. That is, the delay time which occurs in the packet transmission varies in accordance with the topology of the buses.
When the arbitration reset gap becomes shorter than a period in which the delay of the packet and the subaction gap are added together, an arbitration enable bit is not set, and the arbitration operation will not be performed normally.
In a manner as described above, in the specifications for the IEEE1394 serial bus, the function called a bus manager which provides information of the highest data transmission rate at which communication is possible among arbitrary apparatuses on the bus, to an apparatus on the bus, is defined. When a plurality of apparatuses have the function of a bus manager, the bus manager of one of the apparatuses connected to the IEEE1394 serial bus operates effectively. The apparatus connected to the IEEE1394 serial bus sets the rate of data transmission to an apparatus to which it wants to transmit on the basis of the information of the speed map of the bus manager, and performs communication at the highest data transmission rate at which communication is possible. Further, by using the data of the topology map possessed by the bus manager, the subaction gap and the arbitration reset gap are set to the shortest period.
However, in the specifications of the IEEE1394 serial bus, a method for determining the highest communication speed between two apparatuses on the IEEE1394 serial bus and a method for determining the most appropriate subaction gap and arbitration reset gap are not defined.
The present invention has been made in view of the above circumstances, and an object of this invention is to determine the highest communication speed between two apparatuses on a network.
Another object of this invention is to determine the topology of a network.
In order to attain the above objects, according to an aspect of the present invention, an information processing apparatus having unique information connected to a network together with a plurality of other information processing apparatuses each connected to the network and each having unique information is provided. The apparatus comprises a receiving means for receiving the unique information for identifying all of the information processing apparatuses on the network, and a network structure obtaining means for obtaining a network structure of the network based upon the unique information of all of the information processing apparatuses. The apparatus further comprises a counting means for counting a number of connections between all of the information processing apparatuses on the network based upon the network structure, and a controlling means for controlling communication timing of the information apparatuses on the network based upon the number of the connections. The network may be a bus interface, and the information processing apparatus may be an Audio/Visual apparatus.
The apparatus further comprises a topology map obtaining means for obtaining a topology map of the network based upon the unique information of each of the information processing apparatuses. The apparatus further comprises a topology map storing means for storing the topology map obtained by the topology map obtaining means, a storing means for storing appropriate timings corresponding to number of the connections, and the controlling means controls the communication timing with a use of the appropriate timings in the storing means.
The receiving means obtains self IDs defined in IEEE 1394-1995 standard as the unique information, which are outputted from each of the information processing apparatus on the network when a reset of the network occurs, and the topology map obtaining means obtains a topology map defined in IEEE 1394-1995 standard, and the topology map obtaining means further comprises a writing means for writing data to a length field of the topology map defined in IEEE 1394-1995 standard, a storing means for storing the self Ids, a counting means for counting a generation number, a number of nodes, and a number of self Ids, and a cyclic redundancy check setting means for setting a cyclic redundancy check for the topology map defined in IEEE 1394-1995 standard.
The apparatus also comprises parent node ID obtaining means for obtaining the parent node IDs of each of the information processing apparatuses based upon the unique information, speed map obtaining means for obtaining a speed map of the network based upon the unique information of each of the information processing apparatuses, and communicating means for communicating data at a speed based on the speed map.
The receiving means obtains self IDs defined in IEEE 1394-1995 standard as the unique information which are outputted from each of the information processing apparatuses on the network when a reset of the network occurs, and the speed map obtaining means obtains a speed map defined in IEEE 1394-1995 standard, and the speed map obtaining means further comprising a writing means for writing data to a length field of the speed map defined in IEEE 1394-1995 standard, a storing means for storing the self Ids, a counting means for counting a generation number, a number of nodes, and a number of self Ids, and a cyclic redundancy check setting means for setting a cyclic redundancy check for the speed map defined in IEEE 1394-1995 standard. Corresponding methods are described also.